#ifndef STATE_H
#define STATE_H
#include "StateManager.h"
#include "ResourceManager.h"

namespace sfge
{
    class State
    {
        public:
            State(sf::RenderWindow* window, StateManager* mgr);
            virtual ~State(){};

            virtual void init() = 0;
            virtual void cleanup() = 0;

            virtual void handle() = 0;
            virtual void update() = 0;
            virtual void draw() = 0;

            virtual void pause() = 0;
            virtual void resume() = 0;

        protected:
            StateManager* stateManager;
            sf::RenderWindow* window;
    };
}

#endif // STATE_H
